package cn.iocoder.yudao.module.resource.api;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.resource.api.enums.MessageContentTypeEnum;
import cn.iocoder.yudao.module.resource.api.enums.MessageSourceTypeEnum;
import cn.iocoder.yudao.module.resource.api.model.message.AudioDataDTO;
import cn.iocoder.yudao.module.resource.api.model.message.MessageDTO;
import cn.iocoder.yudao.module.resource.api.model.message.MessagePageReqDTO;

import java.util.List;

public interface IMessageApi {

    MessageDTO getMessage(String id);

    MessageDTO getMessageByUserId(Long userId, String id);

    PageResult<MessageDTO> getMessagePageByUserId(Long loginUserId, MessagePageReqDTO pageReq);

    void updateAudioDataById(String messageId, List<AudioDataDTO> audioDataList);

    MessageDTO createMessage(String messageId,
                             Long userId,
                             MessageSourceTypeEnum senderType,
                             MessageContentTypeEnum contentType,
                             String gameMatchId,
                             String wsSessionId,
                             Integer roleId,
                             String userText,
                             String replyText,
                             List<AudioDataDTO> audioDataList,
                             Integer responseTimeMs);

    void deleteMessageByUserId(Long userId);
}
